﻿#pragma once
#include "QueryData.h"
#include "TradeDetail.h"
#include <map>
#include "tradebase_global.h"

// 用户交易接口
class TRADEBASE_EXPORT UsrTradeInterface
{
public:
	UsrTradeInterface();
	~UsrTradeInterface();

	//// 下面几个是ctp的需求
	//// 初始化
	//virtual void Init() = 0;
	//// 查询账户
	//virtual void QueryAccount() = 0;
	//// 查询订单
	//virtual void QueryOrders() = 0;
	//// 查询仓位
	//virtual void QueryPositions(const std::string &pSymbol, QryData::QryBackFunc qryFunc) = 0;
	//// 查询交易
	//virtual void QueryTrades() = 0;

	// 返回账户信息
	virtual const QryData::Account &GetAccountDetail() = 0;
	// 返回仓位信息
	virtual bool GetPositionDetail(const std::string &pSymbol, QryData::Position &outPos) = 0;
	// 下单操作
	virtual void InsertOrderNow(const TD::OrderOption &pOption, TD::OrderBackFunc pFunc) = 0;
	// 返回做单信息
	virtual bool GetOrderDetail(const std::string &pSymbol, TD::Order &outOrder) = 0;
	// 更新做单信息
	virtual bool UpdateOrderDetail(const std::string &pSymbol, const TD::Order &pOrder) = 0;
	// 移除做单信息
	virtual bool EraseOrderDetail(const std::string &pSymbol) = 0;
	// 返回所有的做单信息
	virtual const std::map<std::string, TD::Order> &GetAllOrderDetail() = 0;
};

